/*
*
==============================================================================
*  Name        : 
*  Part of     : Omen Game Engine
*  Description : 
*  Version     : 1.0
*
*  Copyright (c) 2013 Lauri Kortevaara.
* 
==============================================================================
*/

#define OMEN_SOURCE 1

#include "OmenTexture.h"

using namespace Omen;

/// <summary>Set the file path of the texture</summary>
void Texture::setFilePath( const std::wstring& filePath )
{
    m_textureFilePath = filePath;
}

/// <summary>Returns the file path of the texture</summary>
std::wstring Texture::filePath() const
{
    return m_textureFilePath;
}

/// <summary>Returns the file path of the texture</summary>
std::wstring& Texture::filePath()
{
    return m_textureFilePath;
}

Texture::Texture( const Omen::ITexture& texture )
{
    m_textureFilePath = texture.filePath();
    m_uScale = texture.u_scale();
    m_vScale = texture.v_scale();
    m_uOffset = texture.u_offset();
    m_vOffset = texture.v_offset();
    m_rotation = texture.rotation();
    m_tiling = texture.tiling();
}

Omen::Float Texture::u_scale() const { return m_uScale; }
Omen::Float Texture::v_scale() const { return m_vScale; }
Omen::Float Texture::u_offset() const { return m_uOffset; }
Omen::Float Texture::v_offset() const { return m_vOffset; }

Omen::Float Texture::rotation() const { return m_rotation; }
WORD Texture::tiling() const { return m_tiling; }

void Texture::set_u_scale(Omen::Float scale) { m_uScale = scale; }
void Texture::set_v_scale(Omen::Float scale) { m_vScale = scale; }
void Texture::set_u_offset(Omen::Float offset) { m_uOffset = offset; }
void Texture::set_v_offset(Omen::Float offset) { m_vOffset = offset;}

void Texture::setRotation(Omen::Float rotation) { m_rotation = rotation; }
void Texture::setTiling(WORD tiling) { m_tiling = tiling; }


/// EOF